package com.tfjybj.itoo.exam.provider.service;

import com.dmsdbj.itoo.tool.base.service.BaseServicePlus;
import com.dmsdbj.itoo.tool.business.ItooResult;
import com.tfjybj.itoo.exam.entity.RoomEntity;
import com.tfjybj.itoo.exam.model.RoomModel;

import java.util.List;


/**
 * RoomService接口
 * room表
 *
 * @author 杨江涛
 * @version 2.0.0
 * @since 2.0.0 2018-11-15 10:35:56
 */
public interface RoomService extends BaseServicePlus<RoomEntity> {

    /* **********************************以下为非模板生成的内容********************************* */

    /**
     * 根据建筑ID查询room信息
     *
     * @param buildingId 建筑ID
     * @return 根据建筑ID查询room信息
     * @author 杨江涛
     * @since 2.0.0 2018-11-23 08:35:56
     */
    ItooResult findByBuildingId(String buildingId);

    /**
     * 根据roomId查找Room表所有信息
     *
     * @param roomId 主键roomId
     * @return roomEntityList
     * @author 杨江涛
     * @since 2.0.0 2018-11-15 10:35:56
     */
    ItooResult findByRoomId(String roomId);

    /**
     * 根据校区代码查找Room表所有校区所有建筑的所有机房（返回list）
     *
     * @param schoolBranch 地理位置(010_西校区，011_东校区)
     * @return roomEntityList
     * @author 杨江涛
     * @since 2.0.0 2018-11-30 16:47:29
     */
    ItooResult findComputerRoom(String schoolBranch);

    /**
     * 根据roomId查找Room表所有信息
     *
     * @param pageNo     页码
     * @param pageSize   每页条数
     * @param searchInfo 查询参数
     * @return roomEntityList
     * @author 杨江涛
     * @since 2.0.0 2018-12-6 19:17:44
     */
    ItooResult findRoom(String searchInfo, Integer pageNo, Integer pageSize);


    /**
     * 根据校区号和开考时间筛选教师
     *
     * @param schoolCode 校区号
     * @param startTime  配置考试开始时间
     * @return List<RoomEntity>
     * @author 马莹
     * @since 2018-12-7 20:53:31
     */
    ItooResult queryNoExamRoom(String schoolCode, String startTime);

    /**
     * 根据搜索框模糊查询考场
     *
     * @param fuzzyValue 搜索框参数
     * @param schoolKey  校区号
     * @param startTime  考试开始时间
     * @param endTime    考试结束时间
     * @return 筛选的结果集
     * @author yuyunxiu
     * @since 2018年12月12日
     */
    List<RoomModel> selNotExamRoom(String fuzzyValue, String schoolKey, String startTime, String endTime);

    /**
     * 根据东西校区以及考试开始时间加载考场
     *
     * @param schoolKey 校区key
     * @param startTime 考试开始时间
     * @param endTime   考试结束时间
     * @return 考场集合
     * @since 2019-3-24 17:33:12
     */
    List<RoomModel> selNotRoom(String schoolKey, String startTime, String endTime);
}
